import java.util.ArrayList;
import java.util.HashSet;

public class TEST {
    //求1!+2!+3!+...+20!的值
//    public static void main(String[] args) throws Exception{
//        System.out.println("1!+2!+3!+...+20!="+sum(20));
//    }
//    public static long sum(int n){
//        int a,b,c,d=0;
//        for ( a = 1; a <=n; a++) {
//            c=1;
//            for(b=1;b<=a;b++)
//                c=c*b;
//            d+=c;
//        }
//        return d;
//    }
    //对一个数组进行分类聚合
public static void main(String[] args) throws Exception{
    ArrayList<Integer> list = new ArrayList<>();
    list.add(1);list.add(5);
    list.add(3);list.add(3);
    list.add(1);list.add(5);
    list.add(2);list.add(1);
    list.add(1);list.add(5);
    list.add(4);list.add(1);
    list.add(3);list.add(1);
    list.add(1);list.add(5);
    list.add(4);list.add(3);
    System.out.println(list);
//    //方法1  分类
//    ArrayList<Integer> newlist = new ArrayList<>();
//    for (int i = 0; i <list.size(); i++) {
//        if (!newlist.contains(list.get(i))){
//            newlist.add(list.get(i));
//        }
//    }
//    //聚合
//    for (int i = 0; i <newlist.size(); i++) {
//        int sum=0;
//        for (int j = 0; j <list.size(); j++) {
//            if (list.get(j)==newlist.get(i)){
//                sum++;
//            }
//        }System.out.println(newlist.get(i)+":"+sum);
//        }
    //方法2  分类
    HashSet<Integer> hashSet = new HashSet<>();
        for (int i = 0; i <list.size(); i++) {
            hashSet.add(list.get(i));
    }
    //聚合
    for (Integer integer : hashSet) {
            int sum=0;
        for (Integer integer1 :list ) {
            if (integer==integer1){
                sum++;
            }
        }
        System.out.println(integer+":"+sum);
    }
}
}
